
import Vue from 'vue'
import { generateId } from '@/utils/index'
function checkPermission(el, binding, vnode) {
    // 解决页面切换--指令不更新问题
    // vnode.key = generateId()
    const { value } = binding
    /**
     * action:权限标识
     * type:展示类型
     */

    const [action, type] = value
    // vnode虚拟节点--vnode.context可以访问当前组件内的方法和data
    const { perList } = vnode.context.$route.meta
    // 取出当前模块拥有的权限
    const perListAction = perList.map(item => item.action)
    // console.log('action :>> ', perListAction, action);
    if (!perListAction.includes(action)) {
        Vue.nextTick(() => {
            // let offsetH;
            // 60是 分页的高度和边距
            //计算并设置el的高度

            switch (type) {
                case 'switch':
                    el.classList.add("is-disabled")
                    el.classList.add("is-disabled_pointer_none")
                    break;
                case 'button':
                    el.classList.add("is-disabled")
                    el.classList.add("is-disabled_pointer_none")
                    break;
                case 'icon':
                    el.classList.add("is-disabled")
                    el.classList.add("is-disabled_pointer_none_icon")
                    break;
                case 'img':
                    el.classList.add("is-disabled")
                    el.classList.add("is-disabled_pointer_none_icon")
                    // 如果是图片 额外添加透明不
                    el.classList.add("is-disabled_pointer_none_img")
                    break;
                case 'list':
                    el.classList.add("is-disabled_pointer_none_list")
                    el.innerHTML = '<div class="no_permission">暂无权限查看</div>'
                    // 计算剩余高度
                    el.style.height = window.innerHeight - el.getBoundingClientRect().top - 20 + 'px';
                    // const emtyTex = document.querySelector('.el-table__empty-text')
                    // if (emtyTex) {
                    //     emtyTex.innerHTML = '暂无权限查看'
                    //     emtyTex.style = 'color: #F56C6C;font-size: 1.25rem;'
                    // }
                    break;
                default:
                    el.classList.add("is-disabled")
                    el.classList.add("is-disabled_pointer_none_icon")
                    break;
            }


        })
    } else {
        // console.log('el :>> ', el);
        // 不存在 删除禁止类型 防止切换的时候类名存在无法点击
        el.classList.remove("is-disabled")
        el.classList.remove("is-disabled_pointer_none")
    }

    // if (value !== undefined) {

    //     // if (!hasPermission) {


    //     // }
    // }
}

export default {
    inserted(el, binding, vnode) {
        checkPermission(el, binding, vnode)
    },
    // update(el, binding, vnode) {
    //     checkPermission(el, binding, vnode)
    // }
}
